# GPIOD 使用说明 ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- 本文档说明 Quectel Pi M1/L1 上使用 gpiod 工具检查和控制 GPIO 的常用命令。当前连接的开发板验证为 libgpiod v1.6.3 。 # 安装与确认 ```bash sudo apt update sudo apt install -y gpiod gpiodetect --version gpiodetect gpioinfo ``` | **命令** | **用途** | | --- | --- | | `gpiodetect` | 查看 GPIO 控制器 | | `gpioinfo` | 查看 GPIO line 状态和占用情况 | | `gpioget` | 读取输入状态 | | `gpioset` | 设置输出状态 | | `gpiomon` | 监听边沿事件 | # 控制器识别 当前开发板示例输出如下,实际项目应以当前板端输出为准。 ``` gpiochip0 [400000.pinctrl] (114 lines) gpiochip1 [1c40000.qcom,spmi:qcom,pm6125@0] (9 lines) gpiochip2 [soc:spf_core_platform:lpi_pinct] (19 lines) ``` # 常用命令 ```bash # 查看主控制器线路 gpioinfo /dev/gpiochip0 # 读取 gpiochip0 的 line 36 gpioget gpiochip0 36 # 输出高电平并保持 5 秒 gpioset --mode=time --sec=5 gpiochip0 36=1 # 监听上升沿事件 gpiomon --rising-edge gpiochip0 36 ``` # 版本差异 | **功能** | **当前 v1 写法** | **较新资料中可能出现的写法** | | --- | --- | --- | | 读取 | `gpioget gpiochip0 36` | `gpioget -c gpiochip0 36` | | 输出保持 | `gpioset --mode=time --sec=5 gpiochip0 36=1` | `gpioset -c gpiochip0 -p 5s 36=1` | | 上升沿监听 | `gpiomon --rising-edge gpiochip0 36` | `gpiomon -c gpiochip0 -e rising 36` | # 注意事项 - GPIO line offset 不等于物理排针编号。 - 带 `[used]` 或已有 consumer 的线路不建议直接控制。 - `gpioset` 进程退出后,输出保持状态可能恢复默认,不应依赖退出后的残留电平。